package com.jt.config;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import redis.clients.jedis.*;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Configuration  //表示一个配置类  一般会与@Bean 的注解联用
@PropertySource("classpath:/redis.properties")
public class RedisConfig {
    //springBoot整合redis集群
    @Value("${redis.nodes}")
    private String nodes;
    @Bean
    public JedisCluster jedisCluster(){
        Set<HostAndPort> set=new HashSet<>();
        String[] nodesArray=nodes.split(",");
        for (String node:nodesArray){
            String host=node.split(":")[0];
            int port=Integer.parseInt(node.split(":")[1]);
            set.add(new HostAndPort(host,port));
        }
        return new JedisCluster(set);
    }


//    @Value("${redis.nodes}")
//    private String nodes;
//    @Bean
//    public ShardedJedis shardedJedis(){
//        List<JedisShardInfo> shards=new ArrayList<>();
//        String[] nodesArray=nodes.split(",");
//        for (String node:nodesArray){
//            String host=node.split(":")[0];
//            int port=Integer.parseInt(node.split(":")[1]);
//            shards.add(new JedisShardInfo(host,port));
//        }
//        return new ShardedJedis(shards);
//    }


//    @Value("${redis.host}")
//    private String host;
//    @Value("${redis.port}")
//    private Integer port;
//    @Bean   //将方法的返回值结果，交给spring容器进行管理
//    public Jedis jedis(){
//        return  new Jedis(host,port);
//    }
}
